The present invention relates, in general, to integrated circuits and, more particularly, to data transfer rate control in communication systems, including Asynchronous Transfer Mode (ATM) systems.
Terminals or end stations using the Segmentation and Reassembly (SAR) portion of an ATM functional circuit can multiplex thousands of Virtual Connections (VCs) to create an outgoing stream of ATM cells. Each cell contains a five-byte header and forty-eight bytes of data. Cell transmission rates for virtual connections in the network ATM transmitting circuit are based on utilization of fixed time intervals or slots in a cell stream. Time intervals may be derived from counters or time slots derived from addressing memory-based tables. For instance, multiple VCs can be linked to hardware implemented counter circuits for providing the time intervals or slots at which VCs are permitted to transmit. However, the fixed counter time interval limits transmission rates for multiple virtual connections, i.e., VCs associated with the same counter may not have individualized rates for transmitting data. Thus, ATM data cell transmit rates are limited by the inflexibility of fixed counter time intervals generated for regulating the transmission of data cells.
When counter based time slots become available, a particular VC is permitted to transmit a cell. Should data not be ready during the specified time slot, a second attempt to transmit the cell is delayed until the counter generates the next time slot. Thus, fixed interval cell transmission rates in accordance with counter time out signals from hardware counters are inefficient.
Static memory tables are programmed for having word locations with entries that select particular VCs. As a pointer marches through the table and accesses a particular location with an entry for a VC, the data cell associated with that VC is transmitted across the link. Thus, the transmission rate for a particular VC is determined by the pace at which the pointer sequentially accesses time slot locations referencing that VC in the memory table. Although the memory table can accommodate different transmission rates for many VCs in accordance with the number of table entries referencing each VC, the precision of the data transmission rate is limited by the size of the memory table and the cyclic operation of the pointer. In particular, when the pointer has accessed the final entry in the memory table, the pointer is returned to the top of the memory table to access the first memory location. This may cause a discontinuity in the rate.
The filled memory table has data values representing the position or the sequence in which VC cells are to be transmitted. When VC cells are not scheduled for transmission, a particular value for a null ATM cell is stored in the location of the memory table representing that time slot. Using memory tables for setting the VC transmission data rates necessitates a relationship between memory table size and transmission rates, i.e., a slow transmission rate associated with a VC requires a large memory table size. Another limitation in regulating transmission cell rates involves the reloading of the memory table to reposition VC references in the memory table as dynamic changes are required. Reconfiguration of the contents of the memory table is required during the time allotted to the transmission of one cell for preventing data loss.
Adjustments for cell data arriving late can not be corrected when using fixed time interval transmission rates such as intervals generated by counters or the memory time slot tables. The transmission of data is delayed until the next selection for transmission is made in accordance with either the count of a counter or a pointer accessing time slots in the memory table.
Accordingly, a need exists for a method of regulating the transmission of ATM cells to maintain rate precision and provide flexibility for dynamically adjusting the rates at which cells are transmitted. It would be advantageous to provide individual transmission rates to a virtual connection in accordance with the type of data traffic transmitted.